package com.filldream.fastboot.common.okutil.stock;

import org.apache.commons.lang3.StringUtils;

import java.math.BigDecimal;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 基础工具
 */
public class BaseUtil {

    /**
     * 渲染股评内容
     * @param content
     * @return
     */
    public static String xrContent(String content){
        return getFormatOutputString(content,34,1,1);
    }

    /**
     * 渲染股评回复
     * @param content
     * @return
     */
    public static String xrReply(String content){
        return getFormatOutputString(content,36,2,1);
    }

    /**
     * 渲染颜色
     * @param content   文本内容
     * @param fontColor 字体颜色：30黑 31红 32绿 33黄 34蓝 35紫 36深绿 37白
     * @param fontType  字体格式：0重置 1加粗 2减弱 3斜体 4下划线 5慢速闪烁 6快速闪烁
     * @param backgroundColor   字背景颜色：40黑 41红 42绿 43黄 44蓝 45紫 46深绿 47白
     * https://www.jianshu.com/p/6659c72ac0f5
     * @return
     */
    public static String getFormatOutputString(String content, int fontColor, int fontType, int backgroundColor){
        return String.format("\033[%d;%d;%dm%s\033[0m", fontColor, fontType, backgroundColor, content);
    }

    public static String delHtmlTag(String html) {
        if(StringUtils.isBlank(html)){
            return html;
        }
        // 使用正则表达式匹配HTML标签
        Pattern pattern = Pattern.compile("<[^>]*>");
        Matcher matcher = pattern.matcher(html);
        // 用空字符串替换HTML标签
        String result = matcher.replaceAll("");
//        result = result.replaceAll("<[^>]`>", "");
        return result;
    }

    public static String autoNumberHuman(BigDecimal money,int scale){
        if( money == null ){
            return "";
        }
        BigDecimal tempMoney = money.abs();
        if(tempMoney.compareTo(new BigDecimal("1000000000000")) > 0){
            return money.divide(new BigDecimal("1000000000000"),scale+1,BigDecimal.ROUND_DOWN) + "万亿";
        }
        if( tempMoney.compareTo(new BigDecimal("100000000")) > 0 ) {
            return money.divide(new BigDecimal("100000000"), scale, BigDecimal.ROUND_DOWN) + "亿";
        }
        if(tempMoney.compareTo(new BigDecimal("10000")) > 0){
            return money.divide(new BigDecimal("10000"),scale,BigDecimal.ROUND_DOWN) + "万";
        }else{
            return money.toString();
        }
    }



}
